package cn.edu.cqytxy.exception;

import cn.edu.cqytxy.login.LoginException;

import java.sql.SQLException;

/**
 * 异常的教学演示
 *
 * @author yinjw
 */
public class ExceptionDemo {

    public static void main(String[] args) throws SQLException {
        testCheckedException();
    }

    /**
     * 测试受检异常:必须要处理或者抛出
     */
    public static void testCheckedException() throws SQLException {
        throw new SQLException("测试SQLException");
    }

    /**
     * 测试运行时异常：不需要手动处理，但是一旦出现异常程序会报错
     */
    public static void testException() {
        int a = 10;
        try {
            // 放可能会出异常的代码
            System.out.println(a/0);
            System.out.println("运行完成");
        } catch (ArithmeticException exception) {
            // 如果出现指定的被捕获的异常(ArithmeticException),
            // 则执行catch下的代码

            // 打印出异常的日志，不是给用户的提示，而是会保存到服务器的日志文件中
            System.out.println("程序出错了：" + exception.getMessage());

            //用户提示
            System.out.println("服务器繁忙，请稍候再试");
        }
        finally {
            // 放无论是否异常都会执行的代码
            System.out.println("finally代码块");
        }
    }

    public static void testArithmeticException() {

    }
}
